package com.dxf.chepter08

/**
 * 化简: 将二元函数引用于集合中的函数
 *
 *  reduceLeft    从左开始化简
 *  原理 递归:
 *    从左开始执行,将得到的结果返回给第一个参数,然后和下一个元素运行,将得到的结果继续返回给第一个参数
 *    即 (((1+2)+3)+4)+5
 *
 *
 *
 */
object T95_化简 {


  def main(args: Array[String]): Unit = {


    val list = List(1, 20, 30, 4, 5)

    //从左到右,取2个数计算后变成第一个参数
    //步骤1 (1+20)
    //步骤2 (1+20)+30
    val i = list.reduceLeft(sum _)
    println(i)


  }

  def sum(n1: Int, n2: Int): Int = {
    n1 + n2
  }


}

